# 设置CMake的最低版本要求为3.5，如果版本低于3.5将报错
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

# 定义项目名称为"recipe-03"，并指定项目使用的编程语言为C++
project(recipe-03 LANGUAGES CXX)

# 定义一个名为"hello-world"的可执行文件，其源文件为hello-world.cpp
add_executable(hello-world hello-world.cpp)

# 定义宏COMPILER_NAME，其值为当前C++编译器的ID
target_compile_definitions(hello-world PUBLIC "COMPILER_NAME=\"${CMAKE_CXX_COMPILER_ID}\"")

# 根据不同的C++编译器定义预处理宏，以便在C++代码中进行编译器判断
if(CMAKE_CXX_COMPILER_ID MATCHES Intel)
  # 如果是Intel编译器，定义宏IS_INTEL_CXX_COMPILER
  target_compile_definitions(hello-world PUBLIC "IS_INTEL_CXX_COMPILER")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
  # 如果是GNU编译器，定义宏IS_GNU_CXX_COMPILER
  target_compile_definitions(hello-world PUBLIC "IS_GNU_CXX_COMPILER")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES PGI)
  # 如果是PGI编译器，定义宏IS_PGI_CXX_COMPILER
  target_compile_definitions(hello-world PUBLIC "IS_PGI_CXX_COMPILER")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES XL)
  # 如果是XL编译器，定义宏IS_XL_CXX_COMPILER
  target_compile_definitions(hello-world PUBLIC "IS_XL_CXX_COMPILER")
endif()
# 其他编译器可以继续添加...